#ifndef __STRUCT_IN_QUERY_H__
#define __STRUCT_IN_QUERY_H__

#pragma once
#pragma pack(push, 1)

#include <Struct.h>
#include <SCSlotHeader.h>
#include <QueryResult.h>

class QueryForUser : public QueryResult
{
public:
	VOID	SetUserKey( DWORD dwKey ) { m_dwUserKey = dwKey;	}
	DWORD	GetUserKey() { return m_dwUserKey; }
private: 
	DWORD	m_dwUserKey;
};

/*
//------------------------------------------------------------------------
//------------------------------------------------------------------------
#include <MemoryPoolFactory.h>

template< class _Fy, DWORD _dfSize = 1000 >
class QUERYPOOL
{
public:
	QUERYPOOL( DWORD dwSize = _dfSize ){ INIT_POOL( dwSize ); }
	virtual ~QUERYPOOL(){ REL_POOL(); }

	_Fy * ALLOC()
	{
		return m_Pool.Alloc();
	}
	VOID FREE( _Fy * pObj )
	{
		m_Pool.Free( pObj );
	}
private:
	static VOID INIT_POOL( DWORD dwSize )
	{
		m_Pool.Initialize( dwSize );
	}
	static VOID REL_POOL()
	{
		m_Pool.Release();
	}
private:
	static util::CMemoryPoolFactory<_Fy> m_Pool;
};

interface IPOOL : public Query
{
	virtual Query * Alloc() = 0;
	virtual VOID Free( Query * ) = 0;
};

#define __DECL_QUERY_POOL( CLASSNAME, POOLSIZE )		\
		private:										\
			typedef QUERYPOOL<CLASSNAME, POOLSIZE>	QPOOL;	\
			static QPOOL		s_Pool;					\
		public:											\
			Query * Alloc()								\
			{											\
				return (Query *)s_Pool.ALLOC();			\
			}											\
			VOID Free( Query * pObject )				\
			{											\
				s_Pool.FREE( (CLASSNAME *)pObject );	\
			}

#define __IMPL_QUERY_POOL( CLASSNAME )	CLASSNAME::QPOOL CLASSNAME::s_Pool;
*/
#pragma pack(pop, 1)



#endif // __STRUCT_IN_QUERY_H__
